
/* 飘雪变量 开始 */
//获取应用实例
const app = getApp()
// 存储所有的星星
const stars = []
// 下落的加速度
const G = 0.01
const stime = 60
// 速度上限，避免速度过快
const SPEED_LIMIT_X = 1
const SPEED_LIMIT_Y = 1
const W = wx.getSystemInfoSync().windowWidth
const H = wx.getSystemInfoSync().windowHeight
const starImage = '/image/snow1.png' //星星素材
/* 飘雪变量 结束 */

Component({

  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    
    createStar:function() {
      // // 存储所有的星星
      // const stars = []
      // const stime = 60
      let starCount = 180 //星星总的数量
      let starNum = 0 //当前生成星星数
      let deltaTime = 0
      let ctx = wx.createCanvasContext('myCanvas')
      let requestAnimationFrame = (() => {
        return (callback) => {
          setTimeout(callback, 1000 / stime)
        }
      })()
      starLoop()
  
      function starLoop() {
        // const W = wx.getSystemInfoSync().windowWidth
        // const H = wx.getSystemInfoSync().windowHeight
        requestAnimationFrame(starLoop)
        ctx.clearRect(0, 0, W, H)
        deltaTime = 10 //每次增加的星星数量
        starNum += deltaTime
        if (starNum > starCount) {
          stars.push(
            new Star(Math.random() * W, 0, Math.random() * 5 + 5)
          );
          starNum %= starCount
        }
        stars.map((s, i) => { //重复绘制
          s.update()
          s.draw()
          if (s.y >= H) { //大于屏幕高度的就从数组里去掉
            stars.splice(i, 1)
          }
        })
        ctx.draw()
      }
  
      function Star(x, y, radius) {
        this.x = x
        this.y = y
        this.sx = 0
        this.sy = 0
        this.deg = 0
        this.radius = radius
        this.ax = Math.random() < 0.5 ? 0.005 : -0.005
      }
  
      Star.prototype.update = function() {
        // 速度上限，避免速度过快
        // const SPEED_LIMIT_X = 1
        // const SPEED_LIMIT_Y = 1
        // 下落的加速度
        // const G = 0.03
  
        const deltaDeg = Math.random() * 0.6 + 0.2
        this.sx += this.ax
        if (this.sx >= SPEED_LIMIT_X || this.sx <= -SPEED_LIMIT_X) {
          this.ax *= -1
        }
        if (this.sy < SPEED_LIMIT_Y) {
          this.sy += G
        }
        this.deg += deltaDeg
        this.x += this.sx
        this.y += this.sy
      }
  
      Star.prototype.draw = function() {
        // const starImage = '../../../image/snow1.png' //星星素材
        // const starImage = snowImg
        const radius = this.radius
        // console.log(starImage)
        ctx.save()
        ctx.translate(this.x, this.y)
        ctx.rotate(this.deg * Math.PI / 180)
        ctx.drawImage(starImage, -radius, -radius * 1.8, radius * 2, radius * 2)
        ctx.restore()
      }
    },

    setAudioPlay:function() {
      const adctx = wx.createInnerAudioContext()
      adctx.autoplay = true
      adctx.loop = true
      adctx.src = 'https://dn-qtshe.qbox.me/Jingle%20Bells.mp3'
      adctx.onPlay(() => {
        console.log('开始播放')
        adctx.play()
      })
    },

    

   
  },


  

})
